쿠버네티스 정책 및 권한 관리를 위한 기술들

개요

쿠버네티스의 권한 관리는 전통적으로 쿠버네티스 RBAC 을 통해 수행되었다. 최근에는 RBAC 의 제한적인 권한 관리보다 정밀한 권한 관리가 요구되고 있고, 웹훅과 Policy as Code 를 활용한 기술들이 적용되고 있다. 이러한 목적으로 널리 사용되고 있는 OPA Gatekeeper, Kyverno 등의 Policy as Code 기반 기술들을 통해 보다 정밀한 권한 관리와 권한을 넘어서는 쿠버네티스 정책 관리를 구현하는 방안에 대해서 설명한다. 이를 위해 우선 권한 관리와 정책 관리에 대해서 고민해 볼 만한 내용들을 짚어보고, 각각에 대해 구체적인 예를 들어 설명한다. 이를 통해 쿠버네티스에서 정책 관리를 어떤 수준까지 구현할 수 있는지에 대해서 구체적으로 설명한다. 또 이와 관련된 사용자 시나리오도 예를 들어 설명한다. 다음은 권한과 정책을 독립적인 도메인으로 구현할 수 있는 Policy as Code 의 개념에 대해서 설명하고, Policy as Code 구현체인 OPA 에 대해 간단히 설명한다. 마지막으로 쿠버네티스에서 정책 및 권한 관리를 위해 실제 적용할 수 있는 오픈소스인 OPA Gatekeeper 와 Kyverno 에 대해서 비교 설명한다.

발표

rbac 한계와 웹훅 기반 쿠버 정책 관리

롤 바인딩 기반
뭘 할 수 있다를 정의한 정책을 붙이는 방식


리소스 테임을 패턴이나 매칭으로 할 수는 없음
자원 아니라 api url을 이요해서 하는 것 가능

rbac로 할 수 없는 것들

시나리오

웹훅 작용 시점

rbac은 처음 요청 발생하자마자 발동
이후 섦명한 기술ㄷ릉느 etcd 적용되기 직전에 검증체크도 할 수 있다.
이게 바로 웨훅 기반

웹훅 기반으로 정책 관리하면 뭐가 좋은가?

어차피 아래에서 볼 많은 기술이 있어 직접 개발할 필요 없음

policy as code

적용하 구현 예시

그래서 이게 뭐냐?

과정을 조금 구체적으로 보겠다.

적용 분야

구현체

장점

k8s에서 pac 제한 사항

기술 간 비교

validation admission policy

kyverno

opa gatekeeper

그럼 어떤 상황에 쓰면 좋은 거지..?

참고